package com.kelab.dify.model.workflow;

import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.Map;

/**
 * 工作流响应模型
 * 
 * @author kelab
 * @version 1.0
 */
public class WorkflowResponse {
    
    @JsonProperty("event")
    private String event;
    
    @JsonProperty("task_id")
    private String taskId;
    
    @JsonProperty("workflow_run_id")
    private String workflowRunId;
    
    @JsonProperty("data")
    private Object data;
    
    @JsonProperty("created_at")
    private Long createdAt;
    
    // 节点相关字段
    @JsonProperty("node_id")
    private String nodeId;
    
    @JsonProperty("node_type")
    private String nodeType;
    
    @JsonProperty("title")
    private String title;
    
    @JsonProperty("index")
    private Integer index;
    
    @JsonProperty("predecessor_node_id")
    private String predecessorNodeId;
    
    @JsonProperty("inputs")
    private Map<String, Object> inputs;
    
    @JsonProperty("outputs")
    private Map<String, Object> outputs;
    
    @JsonProperty("status")
    private String status;
    
    @JsonProperty("error")
    private String error;
    
    @JsonProperty("elapsed_time")
    private Double elapsedTime;
    
    @JsonProperty("execution_metadata")
    private Object executionMetadata;
    
    @JsonProperty("finished_at")
    private Long finishedAt;
    
    /**
     * 默认构造函数
     */
    public WorkflowResponse() {
    }
    
    // Getter和Setter方法
    
    public String getEvent() {
        return event;
    }
    
    public void setEvent(String event) {
        this.event = event;
    }
    
    public String getTaskId() {
        return taskId;
    }
    
    public void setTaskId(String taskId) {
        this.taskId = taskId;
    }
    
    public String getWorkflowRunId() {
        return workflowRunId;
    }
    
    public void setWorkflowRunId(String workflowRunId) {
        this.workflowRunId = workflowRunId;
    }
    
    public Object getData() {
        return data;
    }
    
    public void setData(Object data) {
        this.data = data;
    }
    
    public Long getCreatedAt() {
        return createdAt;
    }
    
    public void setCreatedAt(Long createdAt) {
        this.createdAt = createdAt;
    }
    
    public String getNodeId() {
        return nodeId;
    }
    
    public void setNodeId(String nodeId) {
        this.nodeId = nodeId;
    }
    
    public String getNodeType() {
        return nodeType;
    }
    
    public void setNodeType(String nodeType) {
        this.nodeType = nodeType;
    }
    
    public String getTitle() {
        return title;
    }
    
    public void setTitle(String title) {
        this.title = title;
    }
    
    public Integer getIndex() {
        return index;
    }
    
    public void setIndex(Integer index) {
        this.index = index;
    }
    
    public String getPredecessorNodeId() {
        return predecessorNodeId;
    }
    
    public void setPredecessorNodeId(String predecessorNodeId) {
        this.predecessorNodeId = predecessorNodeId;
    }
    
    public Map<String, Object> getInputs() {
        return inputs;
    }
    
    public void setInputs(Map<String, Object> inputs) {
        this.inputs = inputs;
    }
    
    public Map<String, Object> getOutputs() {
        return outputs;
    }
    
    public void setOutputs(Map<String, Object> outputs) {
        this.outputs = outputs;
    }
    
    public String getStatus() {
        return status;
    }
    
    public void setStatus(String status) {
        this.status = status;
    }
    
    public String getError() {
        return error;
    }
    
    public void setError(String error) {
        this.error = error;
    }
    
    public Double getElapsedTime() {
        return elapsedTime;
    }
    
    public void setElapsedTime(Double elapsedTime) {
        this.elapsedTime = elapsedTime;
    }
    
    public Object getExecutionMetadata() {
        return executionMetadata;
    }
    
    public void setExecutionMetadata(Object executionMetadata) {
        this.executionMetadata = executionMetadata;
    }
    
    public Long getFinishedAt() {
        return finishedAt;
    }
    
    public void setFinishedAt(Long finishedAt) {
        this.finishedAt = finishedAt;
    }
}